home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b4.d64 / example11.6 < prev    next >
Text File  |  2007-02-28  |  1KB  |  37 lines

  1. 0010 DIM INFO$(7) OF 5, LEFT'(7), RIGHT'(7), PARENT(7), VISIT(0:7)
  2. 0020 FOR K:=1 TO 7 DO READ INFO$(K),LEFT'(K),RIGHT'(K),PARENT(K)
  3. 0030 FOR K:=1 TO 7 DO VISIT(K):=0
  4. 0040 NODE:=1
  5. 0050 WHILE NODE<>0 DO
  6. 0060 IF VISIT(NODE)=0 THEN PRINT INFO$(NODE)
  7. 0070 VISIT(NODE):=VISIT(NODE)+1
  8. 0080 IF LEFT'(NODE)<>0 AND VISIT(LEFT'(NODE))=0 THEN
  9. 0090 NODE:=LEFT'(NODE)
  10. 0100 ELIF RIGHT'(NODE)<>0 AND VISIT(RIGHT'(NODE))=0 THEN
  11. 0110 NODE:=RIGHT'(NODE)
  12. 0120 ELIF PARENT(NODE)<>0 THEN
  13. 0130 NODE:=PARENT(NODE)
  14. 0140 PARENTNODE
  15. 0150 ENDIF 
  16. 0160 ENDWHILE 
  17. 0170 PROC PARENTNODE 
  18. 0180 CASE VISIT(NODE) OF
  19. 0190 WHEN 1
  20. 0200 IF INFO$(NODE)="IF" THEN PRINT "ELSE"
  21. 0210 VISIT(NODE):=VISIT(NODE)+1
  22. 0220 NODE:=RIGHT'(NODE)
  23. 0230 WHEN 2
  24. 0240 IF INFO$(NODE)="IF" THEN PRINT "ENDIF"
  25. 0250 IF INFO$(NODE)="FOR" THEN PRINT "NEXT"
  26. 0260 VISIT(NODE):=VISIT(NODE)+1
  27. 0270 NODE:=PARENT(NODE)
  28. 0280 ENDCASE 
  29. 0290 ENDPROC PARENTNODE
  30. 0300 DATA "TVSIM",2,7,0
  31. 0310 DATA "FOR",3,4,1
  32. 0320 DATA "IF",5,6,2
  33. 0330 DATA "THREE",0,0,2
  34. 0340 DATA "ONE",0,0,3
  35. 0350 DATA "TWO",0,0,3
  36. 0360 DATA "PRINT",0,0,1
  37.